#include <iostream>
#include <math.h>
using namespace std;
/*
int floyd(int n,int a){
	for(int k=0;k<n;k++)
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
				a[i*n+j] = min(a[i*n+j],a[i*n+k]+a[k*n+j]);
	return a;
}
*/
int main(){
	//in
	int n,m;
	long long inf=0x7fffffffffffffff;
	cin>>n>>m;
	long long a[n][n];
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			a[i][j]=inf;
		}
		a[i][i]=0;
	}
	for(int i=0;i<m;i++){
		int x,y,l;
		cin>>x>>y>>l;
		a[x-1][y-1]=l;
		a[y-1][x-1]=l;
	}
	
	
//main program

	for(int k=0;k<n;k++)
		for(int i=0;i<n;i++)
			for(int j=i+1;j<n;j++)
				if(a[i][k]!=inf&&a[k][j]!=inf){
					a[i][j] = min(a[i][j],a[i][k]+a[k][j]);
					a[j][i] = a[i][j];
				}
//MP end

// out
	long long l;
	long long mod = 998244354;
	for(int i=0;i<n;i++){
		l=0;
		for(int j=0;j<n;j++){
			l=(l+a[i][j]);
		}
		cout<<l%mod;
		if(i<n-1) cout<<endl;	
	}
}

/*  case1 
2 1
1 2 4
out:
4
4
*/

/* case2
4 5
1 2 1
1 3 2
2 3 2
3 4 3
2 4 4
out:
8
7
7
12
*/

/* case3
5 6
1 3 3
1 4 4
4 2 6
3 2 5
3 5 7
2 5 8
out:
25
27
22
31
39
*/

/* case4

out:

*/

